home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics Plus
/
Graphics Plus.iso
/
general
/
modelers
/
geomview
/
source.lha
/
Geomview
/
src
/
bin
/
sweep_next
/
Sweep.m
< prev
Wrap
Text File
|
1993-07-06
|
2KB
|
92 lines
#import "Sweep.h"
#include <stdio.h>
#include "geom.h"
#include "point3.h"
#include "sweep.h"
#define TRAN 0
#define ROT 1
#define RAD 0
#define DEG 1
@implementation Sweep
- appDidInit:sender
{
[sweepWindow setAvoidsActivation:YES];
cView = [sweepWindow contentView];
[tranView getFrame:&boxFrame];
return self;
}
- go:sender
{
Geom *g, *s;
Point3 pt1, pt2;
printf("(write geometry - targetgeom bare)");
fflush(stdout);
g = GeomFLoad(stdin, NULL);
if ([[tranRot selectedCell] tag]==ROT) {
pt1.x = [rotEnd floatValueAt:0];
pt1.y = [rotEnd floatValueAt:1];
pt1.z = [rotEnd floatValueAt:2];
pt2.x = [rotDir floatValueAt:0];
pt2.y = [rotDir floatValueAt:1];
pt2.z = [rotDir floatValueAt:2];
s = RotationSweep([rotLength floatValue] *
(([[radDeg selectedCell] tag] == DEG) ? M_PI / 180.0 : 1.0),
&pt1, &pt2,
[rotDivisions intValue], g);
} else {
pt1.x = [transDir floatValueAt:0];
pt1.y = [transDir floatValueAt:1];
pt1.z = [transDir floatValueAt:2];
s = TranslationSweep([transLength floatValue], &pt1, g);
}
if (s != NULL) {
printf("(geometry sweep { ");
GeomFSave(s, stdout, NULL);
printf(" } ) ");
fflush(stdout);
}
GeomDelete(g);
GeomDelete(s);
return self;
}
- rotTran:sender
{
if([[sender selectedCell] tag]==TRAN) {
if([tranView superview]!=cView) {
[tranView removeFromSuperview];
[rotView removeFromSuperview];
[cView addSubview:tranView];
[tranView setFrame:&boxFrame];
[cView display];
}
}
else if([[sender selectedCell] tag]==ROT) {
if([rotView superview]!=cView) {
[tranView removeFromSuperview];
[rotView removeFromSuperview];
[cView addSubview:rotView];
[rotView setFrame:&boxFrame];
[cView display];
}
}
return self;
}
@end